Я знаю что это координаты умник.. пустые придирки не прокатят
я не только про координаты, я про всё
короче судя по всему ты пытаешься написать прогу которая бы думала вместо тебя
и это очень пичально
поэтому я просто оставлю это здесь
quq_CCCP, тогда ну нафиг
это полноценный реверс инженеринг уже будет Asaaaaaar, короче это потребует кучу времени и никто тут этим заниматься скорее всего не будет
думаю даже за платно сложно будет найти того кто согласится убить кучу времени на это
Сделай способности добычи у работников много уровней, и при определённых условиях(здание построено, здание умирает) меняй уровень этой способности у всех рабочих на карте(ну, при создании каждого рабочего, смотри на коилчество таких зданий на карте через отряд, и устанавливай уровень способности у рабочего)
Каждый вопрос заслуживает отдельного обсуждения, а на все стало лень ответ печатать, когда начал.
Печатать реально долго, легче было реализовать примеры в карте:
Кроме последнего пункта, его нужно персонально рассматривать, так как игра не подразумевает использование для юнита двух списков. Например, можно наполнить список построек у юнита всеми зданиями, часть из которых блокировать при открытии одного списка и разблокировать при открытии второго, но это подходит, когда один рабочий. Можно сделать второй список из книги заклинаний, куда добавлены способности на основе игрушечных строений, чтобы было видно карту пути и всё такое, но там для них используется один приказ, то есть всегда одинаковое здание будет при нажатии на любую способность, а ещё нет стоимости золота и дерева, что тоже придётся как-то ваять триггерно. Можно перевоплощать юнита при смене списка в другого, но там тоже сложности, не помню точно какие, вроде бы связаны с расой, так как все строят по-разному.
С точкой сбора всё просто. Способность у игрока не заблокировать, потому нужно забрать её у всех зданий, которые есть на карте, либо будут построены.
Группа из максимум 9 юнитов работает немножко коряво, ранее мы с PT153 находили какой-то вариант, чтобы работало быстро, но лень пользоваться поиском. Вроде каждую 0.01 секунду проверялось количество выбранных юнитов, лишние удалялись из выбора.
Чтобы не было очереди, пришёл в голову лишь вариант с апгрейдом здания. Но у меня реализован просто пример для одного конкретного здания, а для нескольких абстрактных зданий нужно делать текстовым триггером, который будет для каждого здания запускать локальный таймер на нужное время и добавлять анимационный текстаг work. По отмене апгрейда, либо истечению таймера анимационный тег удаляется и создаётся воин, к которому привязывается соответствующий звук. Но есть и другие варианты, типа создавать внутри здания другое, которое реально будет производить юнитов, когда заказал апгрейд, там иная реализация. И не упомянул про затрачиваемые ресурсы. Потребуется забирать/возвращать часть ресурсов при отмене апгрейда.
На примере триггеров и фиолетовых строк в редакторе объектов смотри, как сделано улучшение Бугая в Дренорского бугая.
Конечно, мог бы сделать MUI триггер на GUI для отсутствия очереди, но это было бы громоздко и в техническом смысле уродливо. производящие здания заносились бы в массив, для которого будет массив таймеров, которые будут заноситься в виде событий на истечение таймера в другой триггер, а точнее будет несколько массивов таймеров, по максимальному числу тренируемых юнитов в любом производящем здании.
Вместо (юнит триггера) вставишь своего героя. (Скрин внизу)
Редактор обьектов ---> Способности ---> нейтрально-враждебные ---> герои ---> повышение характеристик (редактируешь или создаешь нестандартную и редактируешь под себя)
Если цель именно в стоянии, то самый надёжный способ через сравнение координат с некоторой погрешностью. Также можно через отслеживание приказов, реализацию смотреть тут.
Наглядный пример того, что бег в результате агра не отдаёт никакого приказа.
Единственное, что приходит в голову - это дамми-юнит размером чуть больше экрана, с моделью в виде белого прямоугольника, параллельного земле. Триггерно можно сделать его невыбираемым, перемещать в точку, куда направлена камера игрока (если центр модели не видно, то всю модель не видно) и задавать цвет с прозрачностью. А зачем в роликах такая информация?
открою тебе секрет
ни у кого нету юнитов на карте
все юниты создаются триггерно
короче почитал я то что ты пишешь и понял что ты вообще не умеешь работать с редактором
поэтому вот тебе статьи
прочти хотя бы 100 из них
т.к. ответы уже дали вопрос закрываю Maniac_91:
Цикл. От 1 до количества юнитов в группе:
Выбрать случайного юнита из группы
Создать даммика (с ограниченным временем жизни или отрицательной регенерацией)
Приказать последнему созданному юниту (Last created unit) применить заклинание на выбранного юнита (Picked unit)
Удалить выбранного юнита (Picked unit) из группы.
а нафига если можно сделать цикл по группе (выбрать каждого юнита в группе и делать...)
Еще изменение правил оффтопа тоже в процессе, вечером хотел уже запостить новые правила сайта, но вам повезло устроить этот срач именно сейчас. Последний раз прошу закончить его
ссылка
не прерывается приказ почти у любой абилы без цели. В большинстве случаев, останавливаются, чтоб заюзать скилл. А потом продолжают делать те действия, которые оборвал. Типа Рев. Есть длительные касты, например: заговор неуязвимости, он остановится, попрыгает (channeling-анимация), и потом дальше будет идти. Или заклинание крови дракончика. А вот тех, из-за чего еще и не останавливается на ходу, совсем мало
То есть если я поставлю в очередь приказы постройки, а в середине использую эти способности, то очередь прервётся?
И ещё вопрос, как написать свою абилку с нуля? Ссылок на статьи будет вполне достаточно заранее спасибо:)
на ютубе полно видео, в основном попадаются не шарящие челы, но по основам без проблем проведут
когда окрепнешь, то перейдёшь на джасс и начнёшь самостоятельно клепать крутые спеллы
можешь так же обращаться в заклинания на заказ, либо ко мне, может научу чему-нибудь, но всё равно желательно иметь базовые знания гуи
На JASS-е есть функция GetLearnedSkill(), которая выдает rawcode выученного умения. Создаешь переменную типа "целочисленная" с названием SkillCode, потом в начале действий триггера пишешь через Custom Script что-то типо этого:
set udg_SkillCode=GetLearnedSkill()
и затем делаешь какие тебе там нужны сравнения на переменную SkillCode.
ИИ написать, сами скиллы юзают тока крипы подконтрольные ИИ - к примеру нейтральновраждебные.
Так же можно юзать скилл - Сфера замедления, это орб эффект который срабатывая накладывает на цель атаки указанный в его настройках скилл, подойдет для карт типа Castle Fight.
ИИ чтоли не кастует? Сделай триггерный каст, Событие - юнит обнаружил цель в пределах досягаемости, проглотить не в кулдауне и цель неуязвимый враг, пойти и проглотить юнита...
Fireproof, попробуй в РО у юнита поменять "Графика - Анимация - обратный ход броска" и "Графика - Анимация - точка броска" на 0. Правда, это уберёт время каста для всех умений у этого юнита.
Ну тебе нужно чтобы был прямо таки бафф который можно рассеивать?
Для начала сделай способность, и баф на основе какой нибудь пустышки, подойдет ярость у некромантов, так же переодический триггер который раз в пол секунды проверяет всех юнитов в группе, есть ли у них бафф если юнит мертв или у него нет баффа, то у юнита удаляется способность на доп урон зданиям и сам унит удаляется из группы.
При касте твоим шаманов заклинания на цель, ты добавляешь цель заклинания в группу, которую и перебирает описанный выше триггер.
Надеюсь понятно?
datar1231, Именно поэтому говорят не делать 2 две способности от друга потому когда юнита приходит приказ на использование способности он использует твою нестандартную способность но основываясь на айди стандартной способности или делай на основе другой или незанаю подействует ли канал.
Все функции прелоада замена на рид/врайт мемхака, и в любом случае проверь права администратора для варкрафта, например JNGP точно запущен с правами админа и всё норм, права на запись есть, а если вар запускаешь с обычными, то у него не будет прав для записи, файл прелоада не создасться как и writestring и дальше всё поедет... MKDimon, Запусти от админа, отпишись
call SaveInteger(Hash,GetHandleId(GetTriggerUnit()),5555, CurrentNumberOfSettlement) в одном триггере сохраняем
set CurrentNumberOfSettlement = LoadInteger(Hash,GetHandleId(GetTriggerUnit()),5555) в другом триггере для проверки выгружаем
рабочий вариант
local integer id = GetHandleId(GetTriggerUnit())
call SaveInteger(Hash,id,5555, CurrentNumberOfSettlement) в одном триггере сохраняем
set CurrentNumberOfSettlement = LoadInteger(Hash,id,5555) в другом триггере для проверки выгружаем
Короче вернул обратно локалки, и все заработало. И почему первый вариант не работал. Ладно будут искать подводные камни. Наверное после чистой оптимизации что-то перестало работать. эх... придеться посравнивать. похоже старый код где то мб лучше. только времени потратил на методы тыка.
События на воскрешения юнита нет. Можно попробовать при касте воскрешения проверить всех мертвых юнитов вокруг кастера годных для воскрешения, а спустя 0.00 секунд проверить кто в группе мертвых ожил, хз. Тут только костылями выкручиваться либо делать свою систему воскрешения/воспользоваться южапи, если там есть соответствующая функция
Была прям один в один ситуация. Игра крашица скорее всего от того, что что bounds выходит за пределы карты. Оставляй отступ от краев.
и даже не границы карты, а границы обзора вродебы ломают все
попробуй rect создать на карте, чтобы он был внутри границы обзора. И bounds выставляй по нему.
Событие:
Юнит умирает
Условие:
Количество типов юнитов "Казарма" равно 0 or тип юнита "Казарма" из мертв равно да
Количество типов юнитов "Ферма" равно 0 or тип юнита "Казарма" из мертв равно да
Количество типов юнитов "Олодом" равно 0 or тип юнита "Казарма" из мертв равно да
Событие:
Задание выполнено-показать блаблабла (не важно)
Я с этим согласен, но можно было б
Событие: каждые 0.05сек.
Условия
Кол-во тип юнита "Казармы" В ОБЛАСТИ равно 0
Кол-во тип юнита "Ферма" В ОБЛАСТИ равно 0
Кол-во тип юнита "Олодом" В ОБЛАСТИ равно 0
ОБЛАСТЬ создай и помести в неё все свои домики
Действие:
Твоё что ты там хочешь.....
Только проблема: я не помню есть ли такое условие..*(
The Dude, это несерьезно. Все вопросы описаны в большом количестве статей здесь, на нашем сайте - xgm.guru/p/wc3/articles. То, что перечисляешь не верх мастерства WE, а базовые знания. Материалов предостаточно. Успехов в обучении.
Нашёл систему, где звук передаётся в таймер, который истекает через 0 секунд. В результате один и тот же звук может проигрываться несколько раз без всяких проблем. В инетике пишут мол это такой баг движка.
Вроде бы удалось решить проблему самостоятельно. Ошибка действительно была элементарной - идентификатор не устраивал введённый туда заглавный символ, а я не знал об этом. Простите за беспокойство.
Я не особо разбираюсь в англоязычном варианте триггеров, но у вас вроде стоит "Удалить - последний брошенный предмет", вам нужно "Удалить - Предмет переносимый [герой] типа [название предмета]". Если мой руссификатор не влияет на последовательность пунктов в настройке, то вы использовали третью строчку, а вам нужна девятая. Там вы можете удалить конкретный предмет у конкретного же персонажа.
должен сразу предупредить что делать за тебя никто не будет
теперь по твоим вопросам
чтобы нельзя было кликать скрываешь, даёшь москиты, делаешь видимым
действие проиграть звук и указываешь твою фразу
выбираем всех подходящих(враги,живые) юнитов в радиусе от точки каста и создаём по дамми юниту(юнит без модели, без атаки, с москитами, с нужной способность, время жизни юнита 1 сек) для каждого подходящего юнита приказывая дамми юниту применить нужную способность в подходящего юнита
таким образом каждый дамми юнит применит нужную способность (в твоём случае корни) в 1 подходящего юнита для которого он и был создан а потом исчезнет
Неуязвимость проверяют через даммика с атакой, через приказ, сможет ли атаковать или нет, просто проверка выполнения приказа. Так же пытаются нанести урон и смотрят сколько он отнял здоровья, так можно и определить неуязвимость и вычислить резист юнита к конкретному типу урона.
Меняется - можно поставить свой бафф, что сделан на основе оригинальный. Естественно, нельзя сделать так, чтобы отравленные стрелы станили.
Стан только у баша.
Почему бы не сделать привязку к классу героя: танки не будут получать очки за исцеление, дд-шеры за полученный урон, а лекари за нанесенный урон. Тем самым, стату можно будет набивать исключительно выполняя свою роль.
» WarCraft 3 / ItemPool
» WarCraft 3 / Код Jass
» Администрация XGM / Смена ника на сайте
» WarCraft 3 / Как взломать карту Warcraft 3?
» WarCraft 3 / Как сделать лимит улучшений?
» WarCraft 3 / Как сделать проверку?
» WarCraft 3 / ИИ и способности
» WarCraft 3 / Массив в магазине.
» WarCraft 3 / Исправление вылета кампании Reforged
» WarCraft 3 / Ледяное дыхание
» Администрация XGM / Не выдаются варны.
» WarCraft 3 / способность "защитная аура"
» WarCraft 3 / пассивная способность "кража маны" при атаке
» WarCraft 3 / Ломается система динамичной цены найма юнита
» Администрация XGM / Восстановить комментарий
» WarCraft 3 / Возможность поворота всей карты
» Администрация XGM / Ошибка при заходе
» WarCraft 3 / Задания в редакторе отобразить определенным игрокам
» WarCraft 3 / Вопрос по триггерной способности
» WarCraft 3 / Модель
» WarCraft 3 / Система урона в варкрафте.